大作业(二)之音乐播放器

您所在的位置:网站首页 安卓开发 音乐播放器 大作业(二)之音乐播放器

大作业(二)之音乐播放器

2024-07-04 08:24| 来源: 网络整理| 查看: 265

心得体会:

(1) 通过对 Android 手机平台的音乐播放器软件的开发, 使我对 Android音乐播放器系统的整体设计有一个深入的了解, 对整个流程也会有一个清晰的认识。开发 Android 音乐播放器,要抓住开发的核心部分,音乐播放器大体由播放主界面、播放列表、菜单、播放设置、文件浏览、歌曲搜索六大核心组成,只要掌握了这六部分的开发, 音乐播放器就能初具规模。 而其它的功能都是在这六个功能的基础上去补充添加的, 但是这是功能的确是必不可少的功能,否则就不能算是音乐播放器了。

(2) 音乐播放器系统实现了播放器的基本功能:播放,暂停、停止、上/下一首、音量调节、歌词显示、播放模式、歌曲搜索、文件浏览器、播放列表查询等功能。 运用的系统平台是现今最热门的 Android 系统,是一个开源的基于 Linux 系统的手机平台。是以 Java 语言编写 +SQLite 数据库支持+SharePreference配置文件的组合方式进行数据管理。实现了音乐播放器的系统编程。

(3) 本次程序设计,对播放器的系统结构框架做了精心的构思与设计,采用主要开发工具是 Eclipse3.5+Java语言的支持,Android Development Tool的插件,和 Android SDK2.1 版本的全面结合,才使整个音乐播放器系统得以实现。

(4) 总之,经过几个月的 Android 系统技术知识的学习和对音乐播放器的构思与设计, 使我对 Android 系统有了一定的了解, 让我对 Android 系统上的开发流程和开发模式有了深入的了解, 这对我以后的 Android 项目开发有很大的帮助。

播放设置界面

最外层的 LinearLayout 里面嵌套多层 LineaLayout ,子LinearLayout 里面嵌套着单选按钮 RatioGroup 和开关按钮 ToggleButton 。RatioGroup 里面嵌套着 3个RatioButton ,即界面上显示的(单曲循环、随机播放、顺序播放)。

用的是一个组件 RadioGroup,这个组件有单项选择的功能,里面有RadioButton 项,多个 RadioButton 项只能同时选中一个,该 播放器播放模式有单曲循环,随机播放,顺序播放等功能。 MediaPlayer 有一个监听器,它监听着歌曲是否正在播放或者是否播放完成, 当歌曲播放完成时, 会触发方法OnCompletionListener() ,在该方法里面可以处理歌曲播放完成后的操作。RadioGroup可以进行单项选择操作。

(2) 歌词设置歌词是否显示是一个开关按钮 ToggleButton 实现的,有 ON和OFF状态,当为ON时,歌词显示,为 OFF时,歌词关闭。

ToogleButton 同样有一个监听器, 可以获得 ToogleButton 的不同状态。 使用前对它进行实例化 (ToggleButton) View.findViewById(R.id.ly_lrc); 并且用ToggleButton.isChecked(); 获得开关状态。播放模式状态和歌词显示状态的操作结果都将以一个标志, 被写在一个配置文件中,这是关于 Android 的存储方式,将在后面主要介绍。

5.4.2 歌词显示实现

本播放器以歌词格式 .Lrc 的文件。我们查看 .Lrc 文件中的歌词格式为:[00:16.18] 呼吸着 你的香水味即是以“时间 +歌词”的格式存储。下面将介绍如何将 .Lrc 中的歌词读取出来并存储在 Android 的配文件中(1).xml 配置文件的存储 Android 系统目录结构。

我们可以看到一个目录为 sdcard ,该目录即为扩展卡,里面预先存放着音频文件和 .Lrc 歌词文件,我们定义一个 BufferedReader buffer=newBufferedReader(new FileReader(new File("/sdcard/"+ musicName +".lrc"))); 指定.Lrc 文件存在的路径, 并将文件读取到 BufferReader 中。由于我们要分别存放时间和歌词, 所以我们应该定义两个 List 容器来存放时间和歌词。在读取 lrc 时,每次读取一行,再用算法将时间和歌词分开后放到一个数组里面, 并分别存放在两个 list 中。由于歌曲在播放时会存在界面之间的跳转, 所以歌词必须固定存放在一个文件中, 而不能作为一个对象,因此,我们将两个时间 List 和歌词 List 再写进一个配置文件中 .  。

    Android 提供给我们一个共享文件的类 SharedPreferences 。它有一个方法getSharedPreferences( 参数1,参数 2),参数 1为写进时的标记,便于在从其中读取出来时的标记,参数 2为读取模式,有只写模式(MODE_WORLD_WRITEABLE )和只读模式 (MODE_WORLD_READABLE ),在写之前将其置入编辑状态,用静态方法 SharedPreferences.Editor editor =sp.edit(); 然后对象 editor 可以存入一个 HashMap类型的键值,即putString(KEY, VALUES),这样,我们可以将 List 中的对象转化成一样长的字符中放进配置文件中 .

(2).xml 配置文件的读取我们仍以播放模式读取为例:

     当需要用到播放模式的确定时,我们将读取.Xml文件,同样用共享文件类 SharedPreferences 通过用方法                                                 getSharedPreferences("SET_MSG",MODE_WORLD_READABLE) ,并且是只读方式获得 .Xml的文件内容。

      SharedPreferences 的对象调用方法getString("sigle_Play", null) ,方法返回一个 String 类型的值,即是我们以前存储进去的 String 值。

         此方法当该标记不存在时会默认返回一个 null值。获得成功后我们就可以运用当前的值再对程序进行操作了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3